package com.isyscore.utils;

public class MesResult<T> {
    private int code;           // 状态码
    private String message;     // 响应消息
    private T data;            // 响应数据

    // 私有构造函数，防止直接实例化
    private MesResult() {}

    // 成功的静态方法
    public static <T> MesResult<T> success(T data) {
        MesResult<T> result = new MesResult<>();
        result.setCode(200); // HTTP 200 OK
        result.setMessage("操作成功");
        result.setData(data);
        return result;
    }

    // 失败的静态方法
    public static <T> MesResult<T> error(String message) {
        MesResult<T> result = new MesResult<>();
        result.setCode(500); // 默认错误码
        result.setMessage(message);
        return result;
    }

    // 失败的静态方法，带有自定义状态码
    public static <T> MesResult<T> error(int code, String message) {
        MesResult<T> result = new MesResult<>();
        result.setCode(code);
        result.setMessage(message);
        return result;
    }

    // Getter 和 Setter 方法
    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }
}
